home *** CD-ROM | disk | FTP | other *** search
- '\"
- '\" Copyright (c) 1989-1993 The Regents of the University of California.
- '\" All rights reserved.
- '\"
- '\" Permission is hereby granted, without written agreement and without
- '\" license or royalty fees, to use, copy, modify, and distribute this
- '\" documentation for any purpose, provided that the above copyright
- '\" notice and the following two paragraphs appear in all copies.
- '\"
- '\" IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
- '\" FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- '\" ARISING OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
- '\" CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- '\"
- '\" THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- '\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- '\" AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- '\" ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
- '\" PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- '\"
- '\" $Header: /user6/ouster/tcl/man/RCS/DetachPids.3,v 1.10 93/09/09 10:53:24 ouster Exp $ SPRITE (Berkeley)
- '\"
- '\"----------------------------------------------------------------------------
- '\" @(#) DetachPids.3 26.1 93/10/22 SCOINC
- '\"
- '\" Copyright (C) The Santa Cruz Operation, 1992-1993.
- '\" This Module contains Proprietary Information of
- '\" The Santa Cruz Operation, and should be treated as Confidential.
- '\"----------------------------------------------------------------------------
- .so ../man.macros
- .HS Tcl_DetachPids tclc
- .BS
- .SH NAME
- Tcl_DetachPids, Tcl_ReapDetachedProcs \- manage child processes in background
- .SH SYNOPSIS
- .nf
- \fB#include <tcl.h>\fR
- .sp
- \fBTcl_DetachPids\fR(\fInumPids, pidPtr\fR)
- .sp
- .VS
- \fBTcl_ReapDetachedProcs\fR()
- .VE
- .SH ARGUMENTS
- .AS int *statusPtr
- .AP int numPids in
- Number of process ids contained in the array pointed to by \fIpidPtr\fR.
- .AP int *pidPtr in
- Address of array containing \fInumPids\fR process ids.
- .BE
-
- .SH DESCRIPTION
- .PP
- .VS
- \fBTcl_DetachPids\fR and \fBTcl_ReapDetachedProcs\fR provide a
- mechanism for managing subprocesses that are running in background.
- These procedures are needed because the parent of a process must
- eventually invoke the \fBwaitpid\fR kernel call (or one of a few other
- similar kernel calls) to wait for the child to exit. Until the
- parent waits for the child, the child's state cannot be completely
- reclaimed by the system. If a parent continually creates children
- and doesn't wait on them, the system's process table will eventually
- overflow, even if all the children have exited.
- .PP
- \fBTcl_DetachPids\fR may be called to ask Tcl to take responsibility
- for one or more processes whose process ids are contained in the
- \fIpidPtr\fR array passed as argument. The caller presumably
- has started these processes running in background and doesn't
- want to have to deal with them again.
- .PP
- \fBTcl_ReapDetachedProcs\fR invokes the \fBwaitpid\fR kernel call
- on each of the background processes so that its state can be cleaned
- up if it has exited. If the process hasn't exited yet,
- \fBTcl_ReapDetachedProcs\fR doesn't wait for it to exit; it will check again
- the next time it is invoked.
- Tcl automatically calls \fBTcl_ReapDetachedProcs\fR each time the
- \fBexec\fR command is executed, so in most cases it isn't necessary
- for any code outside of Tcl to invoke \fBTcl_ReapDetachedProcs\fR.
- However, if you call \fBTcl_DetachPids\fR in situations where the
- \fBexec\fR command may never get executed, you may wish to call
- \fBTcl_ReapDetachedProcs\fR from time to time so that background
- processes can be cleaned up.
- .VE
-
- .SH KEYWORDS
- background, child, detach, process, wait
-